﻿module flow.as2.ActionType;

public enum ActionType : ubyte {
	End						= 0x00,

	/* v3 actions */
	NextFrame					= 0x04,
	PrevFrame					= 0x05,
	Play						= 0x06,
	Stop						= 0x07,
	ToggleQuality				= 0x08,
	StopSounds				= 0x09,
	GotoFrame					= 0x81,	/* >= 0x80 means record	has	args */
	GetURL					= 0x83,
	IfFrameLoaded				= 0x8A,
	SetTarget					= 0x8B,
	GotoLabel					= 0x8C,

/* v4 actions */
	ADD						= 0x0A,
	SUBTRACT					= 0x0B,
	MULTIPLY					= 0x0C,
	DIVIDE					= 0x0D,
	EQUALS					= 0x0E,
	LESSTHAN					= 0x0F,
	LOGICALAND				= 0x10,
	LOGICALOR					= 0x11,
	LOGICALNOT				= 0x12,
	STRINGEQ					= 0x13,
	STRINGLENGTH				= 0x14,
	SUBSTRING					= 0x15,
	POP						= 0x17,
	INT						= 0x18,
	GETVARIABLE				= 0x1C,
	SETVARIABLE				= 0x1D,
	SETTARGETEXPRESSION		= 0x20,
	STRINGCONCAT				= 0x21,
	GETPROPERTY				= 0x22,
	SETPROPERTY				= 0x23,
	DUPLICATECLIP				= 0x24,
	REMOVECLIP				= 0x25,
	TRACE						= 0x26,
	STARTDRAGMOVIE			= 0x27,
	STOPDRAGMOVIE				= 0x28,
	STRINGLESSTHAN			= 0x29,
	RANDOM					= 0x30,
	MBLENGTH					= 0x31,
	ORD						= 0x32,
	CHR						= 0x33,
	GETTIMER					= 0x34,
	MBSUBSTRING				= 0x35,
	MBORD						= 0x36,
	MBCHR						= 0x37,
	IFFRAMELOADEDEXPRESSION	= 0x8D,
	PUSHDATA					= 0x96,
	BRANCHALWAYS				= 0x99,
	GETURL2					= 0x9A,
	BRANCHIFTRUE				= 0x9D,
	CALLFRAME					= 0x9E,
	GOTOEXPRESSION			= 0x9F,

/* v5 actions */
	DELETE					= 0x3A,
	DELETE2					= 0x3B,
	VAREQUALS					= 0x3C,
	CALLFUNCTION				= 0x3D,
	RETURN					= 0x3E,
	MODULO					= 0x3F,
	NEW						= 0x40,
	VAR						= 0x41,
	INITARRAY					= 0x42,
	INITOBJECT				= 0x43,
	TYPEOF					= 0x44,
	TARGETPATH				= 0x45,
	ENUMERATE					= 0x46,
	NEWADD					= 0x47,
	NEWLESSTHAN				= 0x48,
	NEWEQUALS					= 0x49,
	TONUMBER					= 0x4A,
	TOSTRING					= 0x4B,
	DUP						= 0x4C,
	SWAP						= 0x4D,
	GETMEMBER					= 0x4E,
	SETMEMBER					= 0x4F,
	INCREMENT					= 0x50,
	DECREMENT					= 0x51,
	CALLMETHOD				= 0x52,
	NEWMETHOD					= 0x53,
	BITWISEAND				= 0x60,
	BITWISEOR					= 0x61,
	BITWISEXOR				= 0x62,
	SHIFTLEFT					= 0x63,
	SHIFTRIGHT				= 0x64,
	SHIFTRIGHT2				= 0x65,
	SETREGISTER				= 0x87,
	CONSTANTPOOL				= 0x88,
	WITH						= 0x94,
	DEFINEFUNCTION			= 0x9B,

/* v6 actions */
	INSTANCEOF				= 0x54,
	ENUMERATEVALUE			= 0x55,
	STRICTEQUALS				= 0x66,
	GREATERTHAN				= 0x67,
	STRINGGREATERTHAN			= 0x68,
	STRICTMODE				= 0x89,

/* v7 actions */
	CAST						= 0x2B,
	IMPLEMENTS				= 0x2C,
	EXTENDS					= 0x69,
	DEFINEFUNCTION2			= 0x8E,
	TRY						= 0x8F,
	THROW						= 0x2A,

/* FlashLite */
	FSCOMMAND2				= 0x2D
};